﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ImageK.Java
{
    /// <summary>
    /// The Transparency interface defines the common transparency modes for implementing classes.
    /// </summary>
    public abstract class Transparency
    {
        /**
         * Represents image data that is guaranteed to be completely opaque,
         * meaning that all pixels have an alpha value of 1.0.
         */
        public static int OPAQUE = 1;

        /**
         * Represents image data that is guaranteed to be either completely
         * opaque, with an alpha value of 1.0, or completely transparent,
         * with an alpha value of 0.0.
         */
        public static int BITMASK = 2;

        /**
         * Represents image data that contains or might contain arbitrary
         * alpha values between and including 0.0 and 1.0.
         */
        public static int TRANSLUCENT = 3;

        /**
         * Returns the type of this {@code Transparency}.
         * @return the field type of this {@code Transparency}, which is
         *          either OPAQUE, BITMASK or TRANSLUCENT.
         */
        public abstract int getTransparency();
    }
}
